//======================
//模型：Transaction模型, transaction表
//======================
let {DataTypes, Model} = require('sequelize');

class Transaction extends Model {}

//定义模型结构, 数据表结构
Transaction.init({
  id: {
    type: DataTypes.INTEGER.UNSIGNED,
    autoIncrement: true,
    primaryKey: true,
    allowNull: false,
    comment: '表id'
  },

  // transactionId: {
  //   type: DataTypes.STRING(30),
  //   allowNull: false,
  //   defaultValue: '',
  //   comment: '验证码id'
  // },

  title: {
    type: DataTypes.STRING,
    allowNull: false,
    defaultValue: '',
    comment: '交易信息'
  },

  progress :{
    type: DataTypes.STRING,
    allowNull: false,
    defaultValue: '',
    comment: '交易进度'
  },

  state:{
    type: DataTypes.INTEGER,
    allowNull: false,
    defaultValue: 0,
    comment: '状态 0-进行中 1-已完成'
  },

  userId:{
    type: DataTypes.STRING,
    allowNull: false,
    defaultValue: '',
    comment: '用户id'
  },

  isDel:{
    type: DataTypes.INTEGER,
    allowNull: false,
    defaultValue: 0,
    comment: '是否已经删除 0-未删除, 1-已删除'
  },
  
}, {

  //指定连接实例，这样才知道在指定数据库创建transaction表
  sequelize,

  //模型名称, 当没有指定表名时，sequelize推断名称为模型名称的复数 ==> transactions作为表名
  modelName: 'transaction',

  //不推断，直接使用模型作为表名 ==> transaction作为表名
  freezeTableName: true,

  //指定表名
  tableName: 'transaction'
})

//同步数据库表
//force: true ==> 删除原有transaction表，新建transaction表
//force: false ==> 如果transaction存在，则不创建，反之，不创建transaction表
Transaction.sync({force: false});

module.exports = Transaction;
